package airacrobats.game;

import airacrobats.io.data.SquadronData;
import java.awt.image.BufferedImage;

/**
 * This class describes the squadrons.
 */
public class Squadron
{
    /**
     * Squadron type definitions.
     */
    public enum Type
    {
        EsquadrilhaDaFumaca("Esquadrilha da Fumaça", "ef", "data/ef");

        /**
         * Name of the squadron.
         */
        private String name;
        /**
         * Name of the mapped key to the squadron.
         */
        private String mapKey;
        /**
         * Package name of the squadron.
         */
        private String packageName;

        /**
         * @param name The name.
         * @param mapKey The map key.
         * @param packageName The package name.
         */
        Type(String name, String mapKey, String packageName)
        {
            this.name = name;
            this.mapKey = mapKey;
            this.packageName = packageName;
        }

        /**
         */
        @Override
        public String toString()
        {
            return name;
        }

        /**
         * @return The mapKey.
         */
        public String getMapKey()
        {
            return mapKey;
        }

        /**
         * @return The packageName.
         */
        public String getPackageName()
        {
            return packageName;
        }
    }

    /**
     * Type definition.
     */
    private Type type;
    /**
     * Image.
     */
    private BufferedImage image;
    /**
     * Squadron data.
     */
    private SquadronData squadronData;

    /**
     * @param type The type definition.
     * @param image The image.
     */
    public Squadron(Type type, BufferedImage image, SquadronData squadronData)
    {
        this.type = type;
        this.image = image;
        this.squadronData = squadronData;
    }

    /**
     * @return The type.
     */
    public Type getType()
    {
        return type;
    }

    /**
     * @return The image.
     */
    public BufferedImage getImage()
    {
        return image;
    }

    /**
     * @return The squadron data.
     */
    public SquadronData getSquadronData()
    {
        return squadronData;
    }
}
